/**
 * 
 */
package com.mc.easyexcel.write;

import java.util.ArrayList;
import java.util.List;

import org.apache.commons.lang3.RandomStringUtils;

import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;

import lombok.Data;
import lombok.ToString;

/**
 * @author w.weizhen
 *
 */
public class SimpleFill {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		String template = "D:\\workSpace\\ftp\\click\\iot_product_export_simple.xlsx";
		// 方案2 根据Map填充
        String file = "D:\\workSpace\\ftp\\click\\data.xlsx";
        // 这里 会填充到第一个sheet， 然后文件流会自动关闭
        String chars = "ABCEFGHIJKLMNOPQRSTUVWXYZ1234567890";
        int size = (int) (Math.random() * (4 - 2) + 200);
		System.out.println(size);
		
//        Map<String, Object> map = new HashMap<String, Object>();
//        map.put("ID", RandomStringUtils.random(5, chars)+" ID");
//        map.put("productCategory", RandomStringUtils.random(5, chars)+" productCategory");
//        map.put("sysId", RandomStringUtils.random(5, chars)+" sysId");
//        map.put("productNo", RandomStringUtils.random(5, chars)+" productNo");
//        map.put("productName", RandomStringUtils.random(5, chars)+" productName");
//        map.put("nodeType", RandomStringUtils.random(5, chars)+" nodeType");
//        map.put("productType", RandomStringUtils.random(5, chars)+" productType");
//        map.put("productModel", RandomStringUtils.random(5, chars)+" productModel");
//        map.put("productDesc", RandomStringUtils.random(5, chars)+" productDesc");
//        map.put("vendorName", RandomStringUtils.random(5, chars)+" vendorName");
//        map.put("domain", RandomStringUtils.random(5, chars)+" domain");
//        EasyExcel.write(file).withTemplate(template).sheet().doFill(map);
        
        
		
//        ExcelWriter excelWriter = EasyExcel.write(file).withTemplate(template).build();
//        WriteSheet writeSheet = EasyExcel.writerSheet().build();
//        for (int i = 0; i < size; i++) 
//        {
//        	Map<String, Object> map = new HashMap<String, Object>();
//            map.put("ID", RandomStringUtils.random(5, chars)+" ID");
//            map.put("productCategory", RandomStringUtils.random(5, chars)+" productCategory");
//            map.put("sysId", RandomStringUtils.random(5, chars)+" sysId");
//            map.put("productNo", RandomStringUtils.random(5, chars)+" productNo");
//            map.put("productName", RandomStringUtils.random(5, chars)+" productName");
//            map.put("nodeType", RandomStringUtils.random(5, chars)+" nodeType");
//            map.put("productType", RandomStringUtils.random(5, chars)+" productType");
//            map.put("productModel", RandomStringUtils.random(5, chars)+" productModel");
//            map.put("productDesc", RandomStringUtils.random(5, chars)+" productDesc");
//            map.put("vendorName", RandomStringUtils.random(5, chars)+" vendorName");
//            map.put("domain", RandomStringUtils.random(5, chars)+" domain");
//            System.out.println(JSON.toJSONString(map));
//            excelWriter.fill(map, writeSheet);
//		}
//        // 千万别忘记关闭流
//        excelWriter.finish();
        
		
		
//        List<data> datas = new ArrayList<data>();
//        for (int i = 0; i < size; i++) 
//        {
//        	JSONObject data = new JSONObject();
//        	data.put("ID", RandomStringUtils.random(5, chars)+" ID");
//        	data.put("productCategory", RandomStringUtils.random(5, chars)+" productCategory");
//        	data.put("sysId", RandomStringUtils.random(5, chars)+" sysId");
//        	data.put("productNo", RandomStringUtils.random(5, chars)+" productNo");
//        	data.put("productName", RandomStringUtils.random(5, chars)+" productName");
//        	data.put("nodeType", RandomStringUtils.random(5, chars)+" nodeType");
//        	data.put("productType", RandomStringUtils.random(5, chars)+" productType");
//        	data.put("productModel", RandomStringUtils.random(5, chars)+" productModel");
//        	data.put("productDesc", RandomStringUtils.random(5, chars)+" productDesc");
//        	data.put("vendorName", RandomStringUtils.random(5, chars)+" vendorName");
//        	data.put("domain", RandomStringUtils.random(5, chars)+" domain");
//            datas.add(JSON.parseObject(JSON.toJSONString(data), data.class));
//		}
//        System.out.println(JSON.toJSONString(datas));
//        // 这里 会填充到第一个sheet， 然后文件流会自动关闭
//        EasyExcel.write(file).withTemplate(template).sheet().doFill(datas);
        
        
        
        List<data> datas = new ArrayList<data>();
        for (int i = 0; i < size; i++) 
        {
//        	JSONObject data = new JSONObject();
//        	data.put("ID", RandomStringUtils.random(5, chars)+" ID");
//        	data.put("productCategory", RandomStringUtils.random(5, chars)+" productCategory");
//        	data.put("sysId", RandomStringUtils.random(5, chars)+" sysId");
//        	data.put("productNo", RandomStringUtils.random(5, chars)+" productNo");
//        	data.put("productName", RandomStringUtils.random(5, chars)+" productName");
//        	data.put("nodeType", RandomStringUtils.random(5, chars)+" nodeType");
//        	data.put("productType", RandomStringUtils.random(5, chars)+" productType");
//        	data.put("productModel", RandomStringUtils.random(5, chars)+" productModel");
//        	data.put("productDesc", RandomStringUtils.random(5, chars)+" productDesc");
//        	data.put("vendorName", RandomStringUtils.random(5, chars)+" vendorName");
//        	data.put("domain", RandomStringUtils.random(5, chars)+" domain");
//            datas.add(JSON.parseObject(JSON.toJSONString(data), data.class));
            
        	data data = new data();
            data.setId(RandomStringUtils.random(5, chars)+" ID");
            data.setProductCategory(RandomStringUtils.random(5, chars)+" productCategory");
            data.setSysId(RandomStringUtils.random(5, chars)+" sysId");
            data.setProductNo(RandomStringUtils.random(5, chars)+" productNo");
            data.setProductName(RandomStringUtils.random(5, chars)+" productName");
            data.setNodeType(RandomStringUtils.random(5, chars)+" nodeType");
            data.setProductType(RandomStringUtils.random(5, chars)+" productType");
            data.setProductModel(RandomStringUtils.random(5, chars)+" productModel");
            data.setProductDesc(RandomStringUtils.random(5, chars)+" productDesc");
            data.setVendorName(RandomStringUtils.random(5, chars)+" vendorName");
            data.setDomain(RandomStringUtils.random(5, chars)+" domain");
            datas.add(data);
//            EasyExcel.write(file).withTemplate(template).sheet().doFill(data);
		}
        System.out.println(JSON.toJSONString(datas));
        // 这里 会填充到第一个sheet， 然后文件流会自动关闭
        EasyExcel.write(file).withTemplate(template).sheet().doFill(datas);
        
//        ExcelWriter writer = EasyExcel.write(file).withTemplate(template).build();
//        WriteSheet sheet = EasyExcel.writerSheet().build();
//        writer.write(datas, sheet);
//        writer.finish();
        
        
	}

	@ToString
	@Data
	public static class data
	{
		private String id;
		private String productCategory;
		private String sysId;
		private String productNo;
		private String productName;
		private String nodeType;
		private String productType;
		private String productModel;
		private String productDesc;
		private String vendorName;
		private String domain;
	}
	
}
